Enviado em 16/06/2010 - 16:11h
Olá, eu queria pedir ajuda dos programadores mais experientes com um exercício de C.#include <stdio.h>
#include <stdlib.h>
#include <string.h> // a função strupr necessita desta biblioteca
// declarando os registros
struct{
char sexo[1], corOlhos[1];
float altura;
int idade;
} pessoas[2];
int main(){
// declarando as variáveis
int i, k, maiorIdade, qtdMulheres, qtdHomens;
float somaIdades;
char handler[1];
// inserindo os dados no registro
for(i=0;i<2;i++){
printf("\nQual o sexo da %da. pessoa? M/F \n", i+1);
scanf("%s", handler);
// Este loop converte o que handler recebe para maiúsculo.
for(k=0;handler[k]!=''; k++){
handler[k] = toupper(handler[k]);
}
// Fazendo a verificação do que a variável handler recebeu. Se passar na verificação, a variável pessoas[i].sexo recebe o valor de handler.
// Se não passar na verificação, exibe mensagem e retorna ao início do loop
if((strcmp(handler,"M")== 0) || (strcmp(handler, "F")==0)){
for(k=0;handler[k]!=''; k++)
pessoas[i].sexo[k] = handler[k];
} else {
printf("\nSexo inválido, digite apenas M ou F !");
i--;
continue;
}
printf("\nDigite a altura: ");
scanf("%f", &pessoas[i].altura);
printf("\nDigite a idade: ");
scanf("%d", &pessoas[i].idade);
printf("\nQual a cor dos olhos? C(castanhos)/A(azuis)/V(verdes) : ");
scanf("%s", handler);
// Passando o que foi digitado para cor dos olhos para MAIÚSCULO e fazendo a verificação do que foi digitado.
for(k=0; handler[k]!=''; k++)
handler[k] = toupper(handler[k]);
// Verificando se o valor digitado para cor dos olhos é igual a C, A ou V
if((strcmp(handler,"C")==0) || (strcmp(handler,"A")==0) || (strcmp(handler,"V")==0)) {
for(k=0;handler[k]!=''; k++)
pessoas[i].corOlhos[k] = handler[k];
} else {
printf("\n\nA cor dos olhos digitada é inválida! Utilize: C(castanhos), A(azuis) ou V(verdes!\n");
i--;
continue;
}
}
// verificando o registro
somaIdades = 0;
maiorIdade = 0;
for(i=1;i<2;i++){
// soma a idade das pessoas de olhos castanhos e altura superior a 1,60 m
// IMPORTANTE : para fazer a comparação entre 2 STRING's utiliza-se o comando STRCMP( string1, string2) => retorna ZERO se forem iguais
if((strcmp(pessoas[i].corOlhos,"C")==0) && (pessoas[i].altura>1.60)) {
somaIdades += pessoas[i].idade;
}
// verifica qual a maior idade entre as pessoas cadastradas no registro
if(pessoas[i].idade> pessoas[maiorIdade].idade)
maiorIdade = i;
}
qtdMulheres = 0;
qtdHomens = 0;
// é nesta parte aqui embaixo que estou com problemas V
for(i=0;i<2;i++){
// verifica a quantidade de mulheres com idade entre 20 e 45 anos(inclusive). Se a verificação anterior retornar 0(zero), verifica a quantidade de mulheres de olhos verdes e altura //inferior a 1.70 m e salva essa quantidade em uma variável
if(strcmp(pessoas[i].sexo,"F")==0){
// #rofl, essa verificação aqui tá pequena hein :P
if((pessoas[i].idade>20) && (pessoas[i].idade<=45))
qtdMulheres++;
if((strcmp(pessoas[i].corOlhos,"V")==0) && (pessoas[i].altura<1.70))
qtdMulheres++;
}
// calcula a quantidade de homens existentes no cadastro
if(strcmp(pessoas[i].sexo,"M")==0)
qtdHomens++;
}
// exibindo os resultados das verificações
printf("\nA media das idades de pessoas de olhos castanhos e altura superior a 1.60 m é : %3.2f", somaIdades/2);
printf("\nA maior idade das pessoas cadastradas é : %d", pessoas[maiorIdade].idade);
printf("\nA quantidade de mulheres de idade entre 20 e 45 anos(inclusive) ou que tenham olhos verdes e altura inferior a 1.70 m é : %d", qtdMulheres);
printf("\nA quantidade de homens é: %d\n", qtdHomens);
return 0;
}
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Debian 12 (net inst) instalado Pendrive erro ao inicializar (3)
Agora temos uma assistente virtual no fórum!!! (246)